﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.Common;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services")]
    public interface IInvTransferService
    {
        [FaultContract(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail)), OperationContract]
        string AutoRevertAllocate(string transferID, string updatedBy, PubParasInfo pubParasInfo);
        [FaultContract(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail))]
        string DeteleOwnerTransferDetailInfo(List<string> transferIDs, List<string> lineIDs, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, FaultContract(typeof(PubParasInfo))]
        string DeteleOwnerTransferInfo(List<string> transferIDs, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(OwnerTransferInfo)), FaultContract(typeof(PubParasInfo)), OperationContract]
        string ExecuteInvOwnerTransfer(string transferID, string updatedBy, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(OwnerTransferQueryEntity)), FaultContract(typeof(PubParasInfo))]
        DataSet GetInvOwnerTransferInfoByQueryEntity(OwnerTransferQueryEntity transferQuery, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(OwnerTransferDetailInfo))]
        OwnerTransferDetailInfo GetOwnerTransferDetailInfo(string transferID, string LineID, PubParasInfo pubParasInfo);
        [FaultContract(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(OwnerTransferInfo))]
        OwnerTransferInfo GetOwnerTransferInfoByID(string transferID, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, FaultContract(typeof(PubParasInfo)), ServiceKnownType(typeof(OwnerTransferDetailInfo))]
        string InsertOwnerTransferDetailInfo(OwnerTransferDetailInfo transferDetailInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(OwnerTransferInfo))]
        string InsertOwnerTransferInfo(OwnerTransferInfo transferInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, FaultContract(typeof(PubParasInfo))]
        string TransferAllocate(string transferID, string updatedBy, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(OwnerTransferDetailInfo)), FaultContract(typeof(PubParasInfo)), OperationContract]
        string UpdateOwnerTransferDetailInfo(OwnerTransferDetailInfo transferDetailInfo, PubParasInfo pubParasInfo);
    }
}

